export const sortByObjectProp = (...propNames) => {
    const resolve = resolveProp(...propNames);
    return (a, b) => {
        const aa = resolve(a).toLowerCase();
        const bb = resolve(b).toLowerCase();
        return bb - aa;
    };
};

const resolveProp = (...propNames) => (target) => {
    return propNames.reduce((src, propName) => {
        if (src === undefined) {
            return undefined;
        }
        return propName in src ? src[propName] : undefined;
    }, target);
};
